package com.blog.mapper;

import com.blog.dto.cond.ContentCondition;
import com.blog.model.Content;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 文章持久层
 *
 * @author wmb
 *
 * @since 2021-2-8
 */
@Mapper
@Repository("contentMapper")
public interface ContentMapper {

    /**
     * 根据条件获取文章列表
     *
     * @param contentCondition
     *
     * @return
     */
    List<Content> getArticlesByCondition(ContentCondition contentCondition);

    /**
     * 获取文章总数量
     *
     * @return
     */
    Long getArticleCount();

    /**
     * 添加文章
     *
     * @param content
     *
     * @return
     */
    int saveArticle(Content content);

    /**
     * 更新文章
     *
     * @param content
     *
     * @return
     */
    int updateArticleById(Content content);

    /**
     * 根据编号获取文章
     *
     * @param cid
     *
     * @return
     */
    Content getArticleById(@Param("cid") Integer cid);

    /**
     * 根据编号删除文章
     *
     * @param cid
     *
     * @return
     */
    void deleteArticleById(@Param("cid") Integer cid);
}
